草庐IT

c++ - Windows SetThreadAffinityMask 无效

全部标签

c# - 为什么 C# 允许无效的枚举值

我花了一段时间试图理解为什么我的WPF应用程序没有正确地数据绑定(bind)到枚举属性,这就是原因。staticvoidMain(string[]args){MyEnumx=0;Console.WriteLine(x.ToString());Console.ReadLine();}publicenumMyEnum{First=1,Second=2}本质上,问题是在我绑定(bind)到的类的构造函数中没有为枚举属性设置默认值,因此它默认为零。有什么方法可以告诉C#编译器我希望它只接受有效值(并且默认为最低值)?我不希望我的属性接受无效值,我不想为每个使用枚举的属性编写setter代码。

c# - 解密异常 - 要解密的数据长度无效

我在C#应用程序中工作。我们有常用的方法将数据存储在文件中。这些方法加密数据并将它们存储在文件系统中。当我们需要数据时,ReadData方法会解密数据并返回纯文本。如果文本尺寸较小,此代码在正常情况下工作正常。但对于下面给出的示例文本,解密代码抛出异常-要解密的数据长度无效。异常发生在行//closetheCryptoStreamx_cryptostream.Close();我尝试了不同的方法,但没有成功。请帮忙。为什么我要加密已经加密的数据-我只是想使用大型应用程序的通用方法存储在一个文件中。常用方法storedata(key,data)和readdata(key)做我无法避免的加密

c# - 如何从字符串中删除无效代码点?

我有一个需要提供规范化字符串的例程。但是,传入的数据不一定是干净的,如果字符串包含无效代码点,String.Normalize()会引发ArgumentException。我想做的就是用一次性字符(例如“?”)替换这些代码点。但要做到这一点,我需要一种有效的方法来搜索字符串以首先找到它们。这样做的好方法是什么?下面的代码有效,但它基本上使用try/catch作为粗略的if语句,因此性能很糟糕。我只是分享它来说明我正在寻找的行为:privatestaticstringReplaceInvalidCodePoints(stringaString,stringreplacement){var

C# Enum.TryParse 解析无效数字字符串

C#.NET4.5,Windows10,我有以下枚举:privateenumEnums{A=1,B=2,C=3}这个程序的行为非常奇怪:publicstaticvoidMain(){Enumse;if(Enum.TryParse("12",oute)){Console.WriteLine("Parsed{0}",e);}else{Console.Write("Notparsed");}Console.ReadLine();}我希望TryParse方法的结果为假,但令我惊讶的是控制台显示“Parsed12”。在Watch窗口中甚至显示值为“12”,并且是Enums类型!对于我尝试过的任何

c# - 如何通过引用修改该字符串的非托管 C 库来发送字符串?

我是与非托管库交互的新手。我有一个非托管C函数,它通过函数内的引用修改字符串。我在从C#传递字符串并通过C函数修改它时遇到问题。这是C函数:__declspec(dllexport)void__stdcallTest(char*name){*name="Bar";}这是C#DLL导入代码:[DllImport(@"C:/blah/mylibrary.dll")]publicexternstaticstringTest(stringname);这是我用来调用函数的代码:strings="foo";Test(s);//Iwantstobe"Bar"aftertheaboveline我曾尝试

c# - 如何制作从 C# "Thread-safe"调用的 C (P/invoke) 代码

我有一些使用单个全局变量的简单C代码。显然这不是线程安全的,所以当我在C#中使用P/invoke从多个线程调用它时,事情就搞砸了。如何为每个线程单独导入此函数,或使其成为线程安全的?我尝试声明变量__declspec(thread),但这导致程序崩溃。我还尝试制作一个C++/CLI类,但它不允许成员函数是__declspec(naked),我需要(我正在使用内联汇编)。我在编写多线程C++代码方面经验不足,因此可能缺少某些内容。下面是一些示例代码:C#[DllImport("MyDll.dll",CallingConvention=CallingConvention.Cdecl)]pu

c# - 资源文件无效

尝试编译我的C#项目时,出现以下错误:'C:\DocumentsandSettings\Dan\Desktop\RowdyPixel\Apps\CleanerMenu\CleanerMenu\obj\Debug\CSC97.tmp'isnotavalidWin32resourcefile.经过多次Google搜索,我确定这通常是由项目使用的图标内的256x256图像引起的。我检查了所有图标并删除了256x256版本,但错误仍然存​​在。关于如何摆脱这个的任何想法?@Mike:一天晚上它神秘地出现了。我搜索了csproj文件,但没有提到CSC97.tmp(我也检查了解决方案文件,但我也没

c# - 随机整数中最可能的位

我做过这样的实验——用C和C#制作了1000万个随机数。然后统计随机整数中15位中的每一位被设置了多少次。(我选择15位是因为C只支持最大0x7fff的随机整数)。我得到的是:我有两个问题:为什么有3个最可能的位?在C情况下,位8,10,12是最有可能的。和C#位6,8,11最有可能。与C#最可能位相比,C#最可能位也似乎大部分移动了2个位置。为什么是这样?因为C#使用其他RAND_MAX常量还是什么?我的C测试代码:voidaccumulateResults(intrandom,intbitSet[15]){inti;intisBitSet;for(i=0;iC#的测试代码:stat

c# - C DLL 中的 PInvoke char* 在 C# 中处理为字符串。空字符问题

CDLL中的函数如下所示:intmy_Funct(char*input,char*output);我必须从C#应用程序调用它。我通过以下方式执行此操作:...DllImportstuff...publicstaticexternintmy_Funct(stringinput,stringoutput);输入字符串完美地传输到DLL(我有可见的证据)。该函数填写的输出虽然是错误的。我有hexa数据,比如:3F-D9-00-01但不幸的是,两个零之后的所有内容都被截断了,只有前两个字节进入了我的C#应用程序。它发生了,因为(我猜)它被视为空字符并将其作为字符串的结尾。知道如何摆脱它吗?我试

c# - 无效的 URI : The Authority/Host could not be parsed from very long url

这是Youtube视频的实际url,此时如果您复制到您的chrome浏览器,您可以观看该视频。但是,当我尝试创建请求时,我得到了UriFormatException。我做错了什么?HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(url);http:/r6---sn-x5jjxnn-ogul.googlevideo.com/videoplayback?ratebypass=yes&ms=au&fexp=924615,912522,932260,910207,936330,916611,936117,936910,93